using System.Diagnostics.Contracts;

namespace OpenWaves
{
    [ContractClass(typeof(DisplayTextProviderContract))]
    public interface IDisplayTextProvider
    {
        string DisplayText { get; }
    }

    [ContractClassFor(typeof(IDisplayTextProvider))]
    public abstract class DisplayTextProviderContract : IDisplayTextProvider
    {
        public string DisplayText
        {
            get
            {
                Contract.Ensures(Contract.Result<string>() != null);
                throw new System.NotImplementedException();
            }
        }
    }
}